home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et3_0-a1.lha / et3 / src / ClassManager.h < prev    next >
C/C++ Source or Header  |  1992-04-27  |  976b  |  45 lines

  1. #ifndef ClassManager_First
  2. #ifdef __GNUG__
  3. //pragma once
  4. #pragma interface
  5. #endif
  6. #define ClassManager_First
  7.  
  8. #include "Object.h"
  9. #include "OrdColl.h"
  10.  
  11. //---- ClassManager ------------------------------------------------------------
  12.  
  13. class ClassManager: public Object {
  14.     OrdCollection *classTable;
  15.     bool sorted;
  16.  
  17.     OrdCollection *sortClassTable();
  18.  
  19. public:
  20.     MetaDef(ClassManager);
  21.     ClassManager();
  22.     ~ClassManager();
  23.     
  24.     //---- class table management
  25.     OrdCollection *GetClassTable()
  26.     { return sorted ? classTable : sortClassTable(); }
  27.     void Add(Class*);
  28.     void Remove(Class*);
  29.     class Iterator *Iterator()
  30.     { return GetClassTable()->MakeIterator(); }
  31.     Class *Find(char *name, char *version= 0);
  32.     Class *FindOrLoad(char *name, char *version= 0);
  33.     Object *Load(char *module, char *cla);
  34.     
  35.     //---- misc
  36.     void SetupSubclasses();
  37.     void InstanceStatistics(bool cumSorted= FALSE);
  38. };
  39.  
  40. extern ClassManager *gClassManager;
  41.  
  42.  
  43. #endif
  44.  
  45.